#include <iostream>     // std::cout, std::cin
#include <algorithm>    // std::sort
#include <vector>       // std::vector

#include "ej1.h"

using namespace std;

Carta::Carta(int val): valor(val)
{
	posicion = 0;
	acum = 0;
}

Maso::Maso(int cant): cant_cartas(cant){
 desde_izq = 0;
 hasta_izq = cant-1;
 desde_der = 0;
 hasta_der = cant-1;
 mejor_pos_izq = -1;
 mejor_pos_der = -1;
 mejor_acum_der = 0;
 mejor_acum_izq = 0;
 //extr_izq.resize(cant);
 //extr_der.resize(cant);

 int j;
 for (int i = 0; i< cant; i++){
	cin >> j;
	Carta x = Carta(j); 
	x.posicion = i;
	x.acum += x.valor;
	if (mejor_acum_izq < x.acum){
	mejor_acum_izq = x.acum;
	mejor_pos_izq = x.posicion;
	}
	extr_izq.push_back(x);
 }
 
 for (int i = 0; i< cant; i++){
	j = (extr_izq[cant-(i+1)]).valor;
	Carta x = Carta(j); 
	x.posicion = i;
	x.acum += x.valor;
	if (mejor_acum_der < x.acum){
	mejor_acum_der = x.acum;
	mejor_pos_der = x.posicion;
	}
	extr_der.push_back(x);
 }
 
}

void imprimir(Maso maso){
	int cant = maso.cant_cartas;
	
	cout << "Las cartas en orden izq a derecha son: " << endl;	
	for(int i=0; i< cant; i++){
		cout <<  maso.extr_izq[i].valor << " | ";
	}
	cout << endl; 
	
	cout << "Las cartas en orden derecha a izquierda son: " << endl;	
	for(int i=0; i< cant; i++){
		cout <<  maso.extr_der[i].valor << " | ";
	}
	cout << endl; 
}


void funcionPrincipal(){
 int n;
 cin >> n;
 Maso maso = Maso(n);
 imprimir (maso);
 
 
}




int main()
{
  while(cin.peek() != 48) {
    funcionPrincipal();
    cin.get();
  }

  return 0;
}
